#ifndef __MYFILETOOLS_H__
#define __MYFILETOOLS_H__

#include <string>
#include <vector>

#if 1
class FileTools
{
public:
    // 读取文件中所有内容
    static std::string ReadAll(const std::string &filePath);
    // 按行读取文件
    static std::vector<std::string> ReadLine(const std::string &filePath);
    // 覆盖写入
    static bool WriteToFile(const std::string &filePath, const std::string &data);
    // 追加写入
    static bool AppendToFile(const std::string &filePath, const std::string &data);
    // 按行写入
    static bool WriteLine(const std::string &filePath, std::vector<std::string> &strVec); // 后面这个是字符串的动态数组

    template <typename T>
    static bool WriteLine(const std::string &filePath, T &Container)
    {
        std::vector<std::string> v;
        for (auto &value : Container)
        {
            v.push_back(value);
        }
        return WriteLine(filePath, v);
    }
    // 按行追加
    static bool AppendLine(const std::string &filePath, std::vector<std::string> &strVec);
    template <typename T>
    static bool AppendLine(const std::string &filePath, T &Container)
    {
        std::vector<std::string> v;
        for (auto &value : Container)
        {
            v.push_back(value);
        }
        return WriteLine(filePath, v);
    }
};

#endif


#endif